From time to time, the software running on network devices throughout the network needs to be updated to provide new features, correct known problems, or correct bugs. Typically, the vendor releases new revisions containing corrections quite frequently, while new versions that adds functionality to the network device is less frequently released.
Early in the life cycle of the product, where a large number of new features are introduced in every release, the rate of corrections may be very frequent. Problems that have not been discovered in vendor test labs will most likely surface during initial tests and operation in customer networks. One reason may be that the demand to get new features with increased speed to market, forces vendors to sacrifice extensive quality control. For this reason, it is essential for the vendor to deliver systems that may update customer networks with only minimal impact on network operation.
In addition, it is expected that the rollout of new features in the network will be more rapid in the future. In fact, this trend has already started, and third generation mobile telecommunication network (e.g. UMTS) is expected to boost this trend even further, especially in the mobile services area. This is because operators need to increase their revenue per customer, due to large 3G investments, in order to maintain their return on investment. This trend puts even more emphasis on the need for rapid update of features in customer networks, and clearly maintenance time needs to be minimized, since it has direct impact on operator revenue.
In most cases, software is distributed directly from the O&M center (OMC) to every network element that shall be upgraded. This means that the same software may be distributed to devices that are physically close in the network over the same physical transmission paths. Clearly, this is a waste of network bandwidth, since the same data must travel the same transmission path more than once. For the same reason, it is also clear that the distribution will take longer than necessary.
Both these factors are important, since the operator wants to use as little bandwidth as possible for maintenance traffic, and utilize as much as possible of the bandwidth for chargeable end-user traffic. It should be noted that maintenance traffic for telecom operators has traditionally been carried over a separate network, while this is generally not true for data communication carriers. However, the argument above is valid in both cases. Limiting the maintenance window is also important, since the operator needs to do distribution during periods of low traffic.
To illustrate the current situation, reference is made to the example network in FIG. 1. Today, when the operator has scheduled a distribution of software to devices D, F, and G, the software is often distributed in three different downloads from OMC to D, from OMC to F, and from OMC to G. One possible optimization would be to download first from OMC to C, from C to F, from C to D, and then from D to G.
In FIG. 1, the current solution is illustrated using filled circular symbols, while the optimized solution is illustrated using symbols with no fill. Each symbol represents a software package. The picture clearly illustrates how bandwidth is saved by optimization of the distribution.
The technical mechanisms to do distribution from one network device to another are well known and implemented in many modern network devices. If distribution is made using the Internet standard FTP protocol, it is simply a matter of implementing both an FTP client and server on the network device. Distribution between two network devices takes place using the FTP client on one of the devices to log on to the FTP server of the other and fetch the appropriate files.
One way of distributing software packages from one single node to a multiple of nodes in a network is described in “Multicast routing algorithms and protocols: A Tutorial”, by Laxman H. Sahasrabuddhe and Biswanath Mukherjee, University of California published in IEEE Networks January/February 2000. The article describes multicasting, which provides the ability of a communication network to accept a single message from an application and to deliver copies of the message to multiple recipients at different locations. An efficient implementation of multicasting permits a better use of the available bandwidth y transmitting at most one copy of the software package on each link in the network. However, multicasting is demanding to configure and maintain, and the technology is not applicable in all types of networks. An example of this is X.25, which is a common standard for maintenance of telecommunication network. Besides, multicasting requires that multicasting logic is implemented in each of the involved nodes in the network.
Another way for the operator to save some bandwidth is by distributing the software on an ad hoc basis from device to device, i.e. manual distribution based on knowledge of the network, but the real benefits are only realized when there is an automated method available that can be used to plan the entire distribution throughout the network. In addition, the operator easily looses control of the distribution process using the ad hoc method, and it is difficult to apply in large networks.
Network devices may implement application functions like multimedia telephony or unified messaging, which provide additional value for the end-user beyond basic end-to-end connectivity. In traditional telecommunication networks, the number of different types of network devices has been quite small, because network functions spanning from transport to the application layer have been integrated in a single element.
However, following the convergence of data and telecom technologies, the number of different network device types is increasing. Ericsson and other vendors are dividing the next generation network into connectivity, control and application layers, with a large number of specialized network element types at each layer. The growing number of devices will demand more effective ways of distributing new software in the network.
The main object of the present invention is to provide a method for optimal distribution of software in a communication network, that overcomes the problems identified above.